package com.example.user.mapper;

import com.example.model.domain.entity.user.UserInfo;
import com.example.model.vo.user.UserInfoQueryVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户Mapper接口
 *
 * @author ruoyi
 * @date 2021-07-15
 */
public interface UserInfoMapper
{
    /**
     * 查询用户
     *
     * @param id 用户ID
     * @return 用户
     */
    public UserInfo selectUserInfoById(Long id);

    /**
     * 查询用户列表
     *
     * @return 用户集合
     */
    public List<UserInfo> selectUserInfoList();


    /**
     * 根据userInfoQueryVo查询用户集合
     * @param userInfoQueryVo
     * @return
     */
    public List<UserInfo> selectUserInfoPage(UserInfoQueryVo userInfoQueryVo);

    /**
     * 锁定用户
     * @param userId
     * @param status
     * @return
     */
    Integer lockedUserById(@Param("userId") Long userId,@Param("status") Integer status);

    /**
     * 认证用户
     * @param userId
     * @param authStatus
     */
    Integer approveUserInfoById(@Param("userId") Long userId,@Param("authStatus") Integer authStatus);

    /**
     * 查询用户
     * @param openid
     * @return
     */
    UserInfo selectUserInfoByOpenId(String openid);

    /**
     * 更新用户
     * @param userInfo
     * @return
     */
    Integer updateUserInfo(UserInfo userInfo);


    /**
     * 查询用户
     * @param phone
     * @return
     */
    UserInfo selectUserInfoByPhone(String phone);


    /**
     * 新增用户
     * @param userInfo
     * @return
     */
    Integer insertUserInfo(UserInfo userInfo);
}
